// @algorithm @lc id=900 lang=cpp 
// @title reordered-power-of-2


#define print(...)
// @test(1)=true
// @test(10)=false
// @test(16)=true
// @test(24)=false
// @test(46)=true
class Solution {
    unordered_set<string> keys;
public:
    string hash(int n){
        string key(10, '0');
        while(n){
            ++key[n%10];
            n = n/10;
        }
        return key;
    }
    bool reorderedPowerOf2(int n) {
        for(int i=1; i<=1e9; i<<=1)
            keys.insert(hash(i));
        print("hash(", n, ")=", hash(n), "\n")
        return keys.count(hash(n));
    }
};